#include<iostream>
#include<vector>
using namespace std;
/*
在一个夜黑风高的晚上，有n（n <= 50）个小朋友在桥的这边，现在他们需要过桥，
但是由于桥很窄，每次只允许不大于两人通过，他们只有一个手电筒，所以每次过桥的两个人需要把手电筒带回来，
i号小朋友过桥的时间为T[i]，两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。
*/
int min(int a,int b)
{
    if(a>b)
        return b;
    else
        return a;
}
int dp(vector<int> river)
{
    vector<int> opts(river.size());
    opts[0] = river[0];
    opts[1] = river[1];
    for(int i=2;i<river.size();i++)
    {
        opts[i] = min(opts[i-1]+river[0]+river[i],opts[i-2]+river[0]+river[i]+2*river[1]);
    }
    return opts[river.size()-1];
}
int main()
{
    vector<int> river(5);
    cout<<"enter the numbers:"<<endl;
    for(int i=0;i<5;i++)
    {
        cin>>river[i];
    }
    cout<<"the minest result is:"<<dp(river)<<endl;
    return 0;
}